﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Data.Dao.Linq;
using Crosland.Automotriz.Core;
using Crosland.Automotriz.Logic.ControlExeption;
using System.Data.SqlClient;
using System.Data;
namespace Crosland.Automotriz.Logic.Linq
{
    public class clsLog_Sus_ArtLogic
    {

        clsLog_Sus_ArtDAO datos = new clsLog_Sus_ArtDAO();

        public bool Insertar(T_LOG_ARTICULO_RELACIONADO obj)
        {
            try
            {
                return datos.Insertar(obj);
            }
            catch (EntityException sqlEx) {

                throw new RunException("ERROR AL INSERTAR EN T_LOG_ARTICULO_RELACIONADO", sqlEx);           
            }
            catch (Exception ex)
            {
               throw new RunException("ERROR EN LA APLICACION POR FAVOR CONSULTE: " , ex);                
            }      
            //catch (Exception e)
            //{

            //    throw new Exception("Error al articulo relacionado.", e);
            //}

        }




        public bool PA_EliminarDetalle(string cod_material, string cod_material_sus)
        {
            try{
            return datos.PA_EliminarDetalle(cod_material, cod_material_sus);

            }catch (SqlException sqlEx) {

                throw new RunException("ERROR EN EL PROCEDIMIENTO PA_DELETE_LOG_SUS_ART", sqlEx);           
            }
            catch (Exception ex)
            {
               throw new RunException("ERROR EN LA APLICACION POR FAVOR CONSULTE: " , ex);                
            }       

        }

        public bool Actualizar_log_sus_art(int id_material, string cod_mat_sus, string observacion, int id_sus_art_mae, decimal cantidad)
        {
            try
            {

             return datos.Actualizar_log_sus_art(id_material, cod_mat_sus, observacion, id_sus_art_mae, cantidad);
           }
            catch (SqlException sqlEx) {

                throw new RunException("ERROR EN EL PROCEDIMIENTO USP_UPDATE_LOG_SUS_ART", sqlEx);           
            }
            catch (Exception ex)
            {
               throw new RunException("ERROR EN LA APLICACION POR FAVOR CONSULTE: " , ex);                
            }    
        }

        public bool ModicarRelacionar(V_UPDATE_RELACIONAR_ART obj)
        {
            return datos.ModificarRelacion(obj);
        }





        public bool Eliminar(T_LOG_ARTICULO_RELACIONADO obj)
        {
            return datos.Eliminar(obj);
        }
        public List<T_LOG_ARTICULO_RELACIONADO_TIPO> listarMae()
        {
            return datos.listarMae();
        }
        public List<V_Log_Articulos_Relacionados> listarDetalle(string codArtMae)
        {
            try
            {
                if (datos.listarDetalle(codArtMae) == null)
                {
                    throw new Crosland.Automotriz.Logic.ControlExeption.DataException("No hay datos en la lista");
                }
                return datos.listarDetalle(codArtMae);
            }
            catch (Exception e)
            {
                throw new RunException("ERROR EN LA LISTA  V_Log_Articulos_Relacionados", e);
            }

        }


    }
}
